The present invention relates to a communication method and system for providing a multicasting delivery service as well as to a device for forwarding multicast data packets.
In multicast communication, data packets are broadcast to multiple terminals at the same time. The sending terminal sends data packets addressed to a multicast group, rather than to individual receiving terminals. The receiving terminals can receive data packets by becoming a group member of a desired multicast group. The reception of data packets can be stopped by leaving the group. When information is being sent to multiple terminals, increasing the number of receiving terminals will increase the amount of traffic going through the network. With multicast communications, the amount of traffic stays the same regardless of the number of receiving terminals because router devices copy the packets. Thus, the use of multicasting allows information to be sent to a greater number of receiving terminals without increasing the amount of traffic.
A receiving terminal uses a group management protocol and sends control packets to a router connected to the network. The control packet contains a join group request to become a group member or a leave group request to leave a group. A receiving terminal can request to join or leave a multicast group at any time. Examples of group management protocols include IGMP (Internet Group Management Protocol), defined in RFC (Request for Comments) 2236 from the IETF (Internet Engineering Task Force), and MLD (Multicast Listener Discovery), defined in RFC2710.
The router uses the group management protocol to periodically send a group participation query packet to determine if any group members exist. Receiving terminals that are group members respond to the query with a join group request packet. The router determines whether or not group members exist based on responses to the query packet. Data packets are forwarded to networks containing group members. The router checks for group members, and if it is determined that forwarding of data packets is necessary, it uses a multicast routing protocol to send delivery requests to other routers. If there are no longer any group members, or if it is determined that data packets do not need to be forwarded, a stop delivery request is sent.
The router updates its multicast forwarding information according to the contents of the received multicast routing protocol data. Representative examples of multicast routing protocols include PIM-SM (Protocol Independent Multicast Sparse Mode), defined in RFC2362, and MOSPF (Multicast Open Shortest Path First), defined in RFC1584. Other examples are PIM-DM (Protocol Independent Multicast Dense Mode) and DVMRP (Distance Vector Multicast Routing Protocol), which are draft standards. In these protocols, providing a multicast delivery service requires the multicast routing protocol to be operating on all the routers on the network. In addition, IGMP, MLD, or the like, must be operating on the terminals receiving multicast data packets.
Tunneling technology is used if there are no routers on the network that can handle multicasting. In this case, a virtual transfer path known as a tunnel is set up between multicast routers. When a multicast router acting as the originating end of the tunnel is to forward a multicast data packet through this transfer path, the data packet is encapsulated in a unicast data packet and sent to the multicast router acting as the terminal end of the tunnel.
Routers on the transfer path that are not multicast-capable forward this encapsulated multicast data packet as a standard unicast data packet. The multicast router acting as the end-point of the tunnel extracts the encapsulated multicast data packet from the unicast packet and multicasts the packet. A public experimental network known as Mbone (Multicast Backbone) has been set up over the Internet using this technology. Japanese laid-open patent publication number Hei 10-242962 and U.S. Pat. No. 6,259,701 present technologies for allowing multicast data packets to be received by receiving terminals that do not support multicast functions. In both of these technologies, multicast data packets are received by a multicast gateway, and these data packets are sent to individual receiving terminals. The receiving terminals issue requests to the multicast gateway to receive data packets. The reception requests the Japanese laid-open document includes a message containing group information for the packets that are to be received is issued to the multicast gateway. The multicast gateway in the above U.S. Pat. No. provides the receiving terminal with a list of information that can be multicast in a manner similar to a WWW server. The receiving terminal uses a WWW browser to select information to be received from this list. The multicast gateway sends copies of received data packets to the multiple receiving terminals requesting data.
Distributing data via multicasting requires that all the routers and terminals on the network are equipped with multicast functions. Currently, the number of multi-castcapable terminals is growing and there are a number of internet service providers (ISP's) that provide multicasting services. Providing multicasting services to more users, however, requires making more terminals and routers multicast-compatible. This involves a very high cost.
The Japanese laid-open document describes how a service can be provided even if a terminal is not multicast-compatible, but the terminal requires the addition of a function for issuing messages to a multicast gateway about a group to be received. It is expected that mobile terminals and mobile telephones will be connected to the Internet in the future; time and money would be required to add features to these terminals for receiving multicast data packets. The technology in the U.S. Pat. No. uses a WWW browser so there is no need to add new features. The multicast gateway therein internally stores a database of multicast information. Using this database, CGI (Common Gateway Interface) processing is used to generate a list of information to be provided to terminals. This operation is performed when a terminal accesses the multicast gateway, but CGI involves a high processing load and service can be affected by the processing load if a large number of terminals accesses the gateway.
Thus, there is a need for improved multicasting technology.